package com.leecode.base;

/**
 * @Author: yaoshubin
 * @Date: 2022-12-11 16:42
 * @description :单链表反转前置知识
 * 1）单链表 的数据结构 护额个图表示出来
 * 2）啥叫引用传递
 */
public class Index_07_单链表前置知识 {

    public static void main(String[] args) {
        // 用一个单链表表示 1，2，3 , 并按序输出
        Node head = new Node(1);
        head.next = new Node(2);
        head.next.next = new Node(3);

        while (head != null) {
            System.out.println(head.value);
            head = head.next;
        }

        System.out.println("==================");

        //引用传递 的理解：拷贝一份引用（地址），但是不改变 原地址
        f1(head); //2,3

        //引用传递 的理解：返回值，修改原来引用
        head = f2(head); //1,2,3
        while (head != null) {
            System.out.println(head.value);  // 1,2,3
            head = head.next;
        }

    }


    public static void f1(Node node) {
        if (node != null) {
            node = node.next;
        }
    }

    public static Node f2(Node node) {
        if (node != null) {
            node = node.next;
        }
        return node;
    }

}
